In most modern computer systems, a cache memory is used to increase the execution speed of the computer's processor. Usually, cache memory is built into or very close to a computer processor and is under the exclusive control of the processor. Although cache memory is much smaller than the computer's program or disk memory, cache memory can be accessed by the processor much faster than either program or disk memory.
As the computing system moves from task to task, data copied from other memories into cache memory can quickly cause all of the memory addresses within the cache to become occupied, thus requiring the cache controller to replace valid cache entries so that new data necessary to support upcoming scheduled tasks can be accommodated. To optimize the performance of the computing system, algorithms are used to determine those entries within the cache that are unlikely to contain data that the processor will use again. When a cache entry must be replaced, a selection is made based on which entries fit these criteria. This maximizes performance by increasing the percentage of cache hits.
One such algorithm uses information that pertains to whether data at a particular cache memory address has been recently used by one or more processors in the computer system. If data at the particular cache memory address has not been recently used by a processor, it may be unlikely that such data will be needed to perform a current or upcoming task. The manner in which such techniques are implemented is the subject of significant development efforts as computer system designers explore ways of managing cache memory without negatively impacting the execution speed of processing tasks.